ClojureScript একটি ক্লোজার-ভিত্তিক প্রোগ্রামিং ভাষা, যা জাভাস্ক্রিপ্টে কম্পাইল হয় এবং সাধারণত ব্রাউজার বা Node.js এ চলে। ClojureScript ডেভেলপমেন্টের সময়, nREPL (Networked Read-Eval-Print Loop) একটি গুরুত্বপূর্ণ টুল, যা কোডকে ইন্টারেক্টিভ এবং রিয়েল-টাইমে মূল্যায়ন করতে সহায়ক। nREPL সাধারণত Clojure এবং ClojureScript উভয় পরিবেশে ব্যবহৃত হয়, এবং এটি ClojureScript ডেভেলপমেন্টকে আরও ইন্টারেক্টিভ এবং দ্রুতগামী করে তোলে।
nREPL একটি টুল যা নেটওয়ার্কের মাধ্যমে ক্লোজার এবং ক্লোজার-স্ক্রিপ্ট কোডকে ইন্টারঅ্যাকটিভভাবে মূল্যায়ন, ডিবাগিং এবং টেস্টিং করার জন্য ব্যবহার করা হয়। এটি কোড লেখার, পরীক্ষা করার এবং প্রয়োগ করার সময় তাৎক্ষণিক ফলাফল দেখতে সাহায্য করে। nREPL এর মাধ্যমে আপনি একটি REPL পরিবেশে ClojureScript কোড লিখতে পারেন এবং রিয়েল-টাইমে এর আউটপুট পেতে পারেন।
ClojureScript এর জন্য nREPL সেটআপ করা সাধারণত Leiningen বা shadow-cljs ব্যবহার করে করা হয়। নিচে আমরা shadow-cljs ব্যবহার করে একটি সাধারণ nREPL সেটআপ দেখবো, যা Node.js বা ব্রাউজার উভয়েই কাজ করে।
প্রথমে, একটি নতুন ClojureScript প্রজেক্ট তৈরি করুন এবং shadow-cljs কনফিগার করুন।
npx create-cljs-project my-cljs-project
cd my-cljs-project
shadow-cljs.edn
ফাইলে nREPL কনফিগার করাপ্রজেক্টের রুট ডিরেক্টরিতে থাকা shadow-cljs.edn
ফাইলে nREPL কনফিগারেশন যুক্ত করুন।
{:source-paths
["src"]
:dependencies
[[cider/cider-nrepl "0.27.4"]]
:nrepl {:port 7002} ; nREPL সার্ভারের জন্য পোর্ট নির্ধারণ
:builds
{:app
{:target :browser
:output-dir "public/js"
:asset-path "/js"
:modules {:main {:init-fn my-cljs-project.core/init}}}}}
এখানে, :nrepl
কনফিগারেশন অংশে আমরা পোর্ট ৭০০২ সেট করেছি যেখানে nREPL সার্ভার চলবে। :dependencies
অংশে cider/cider-nrepl
ডিপেন্ডেন্সি যোগ করেছি, যা Emacs, CIDER বা VSCode এর Calva এর মতো টুলের মাধ্যমে nREPL সেশন চালাতে সাহায্য করবে।
এখন nREPL চালু করার জন্য shadow-cljs REPL কমান্ড রান করুন:
npx shadow-cljs watch app
এটি আপনার ClojureScript প্রজেক্টে nREPL চালু করবে এবং এটি পোর্ট ৭০০২-এ কানেক্ট হবে।
nREPL চালু হলে, আপনি Emacs, VSCode (Calva), IntelliJ IDEA বা অন্য কোনো IDE এর মাধ্যমে nREPL সেশনে কানেক্ট করতে পারেন।
nREPL ব্যবহার করে আপনি ব্রাউজারে চলা ClojureScript কোডকে সরাসরি REPL থেকে ইন্টারঅ্যাকটিভভাবে পরিবর্তন, পরীক্ষা এবং ডিবাগ করতে পারবেন। উদাহরণস্বরূপ, আপনি my-cljs-project.core
নেমস্পেসে একটি ফাংশন পরিবর্তন করে তাৎক্ষণিকভাবে সেই ফাংশনের নতুন আউটপুট দেখতে পারেন।
nREPL সেশনে কানেক্ট হয়ে (+ 1 2 3)
কোড রান করতে পারেন, যা তাৎক্ষণিকভাবে আউটপুট প্রদান করবে:
(+ 1 2 3) ; আউটপুট: 6
এটি ক্লোজারস্ক্রিপ্টে আরও জটিল ফাংশন এবং কোড মডিউলকে পরীক্ষণ এবং ডিবাগ করার জন্য একটি উপযোগী টুল।
ClojureScript এর জন্য nREPL ডেভেলপমেন্টকে দ্রুতগামী, ইন্টারেক্টিভ এবং কার্যকর করে তোলে। এটি ClojureScript কোডকে দ্রুত লিখতে, পরীক্ষা করতে এবং রিয়েল-টাইমে ফলাফল পেতে সহায়ক। Emacs এবং VSCode এর মতো IDE গুলোতে nREPL সাপোর্ট থাকায় ডেভেলপাররা দ্রুত কোড পরিবর্তন এবং উন্নয়নের সুবিধা পান, যা ClojureScript ডেভেলপমেন্টে nREPL এর গুরুত্বকে আরও বাড়িয়ে তোলে।
common.read_more